
#!/bin/bash 
 
#增加记录函数 
add() 
{ 

clear 

echo -e "\033[34m \n—— 请输入姓名和成绩: \c\033[0m"  
read NEWNAME 

# 没有输入名字查询时候 
if [ -z "$NEWNAME" ]; then 
echo -e "\033[31m\n—— 还未输入姓名！——\033[0m"
echo -e "\033[34m \n—— 请输入姓名： \c\033[0m" 
read NEWNAME
fi 

grep "\<$NEWNAME\>" ./xinxi  > /dev/null 
if [ $? = 0 ]; then 
echo -e "\033[31m\n\n\n\n\n—— 添加失败，此人已存在！——\033[0m"
else
echo "$NEWNAME" >> ./xinxi 
# 排序后写回文件 
sort -o ./xinxi ./xinxi 
echo -e "\033[32m\n\n\n\n\n—— 添加成功 ——\033[0m" 
fi
sleep 2 
} 
 
#删除记录函数 
delete() 
{ 
clear 

if [ ! -f ./xinxi ]; then 
echo -e "\033[31m\n—— 删除失败！原信息为空，无信息可删除！—— \033[0m" 
sleep 2 
clear 
return 
fi 

echo -e "\033[34m\n—— 请输入要删除的学生的姓名：\c\033[0m" 
read NAME 
 
# 没有输入名字查询时候 
if [ -z "$NAME" ]; then 
echo -e "\033[31m\n—— 还未输入姓名！——\033[0m"
echo -e "\033[34m\n—— 请输入姓名： \c\033[0m" 
read NAME
fi 

cp xinxi xinxi.bak 
grep "\<$NAME\>" ./xinxi.bak > /dev/null 
if [ $? != 0 ]; then 
echo -e "\033[31m\n\n\n\n\n—— 此人本不存在，删除失败 ——\033[0m" 
else 

grep -v "\<$NAME\>" ./xinxi.bak > xinxi 
echo -e "\033[32m\n\n\n\n\n—— $NAME的信息删除成功！ ——\033[0m" 
fi 
rm -f xinxi.bak 
sleep 2
} 
 
#查询函数 
search() 
{

clear 
 
#检查文件是否有意义
if [ ! -f ./xinxi ]; then 
echo -e "\033[31m\n—— 查询失败！未曾输入信息，无信息可查询！——\n\033[0m" 
sleep 2 
clear 
return 
fi 

echo -e "\033[34m \n—— 请输入姓名: \c\033[0m" 
read NAME

# 没有输入名字查询时候 
if [ -z "$NAME" ]; then 
echo -e "\033[31m\n—— 还未输入姓名！——\033[0m"
echo -e "\033[34m\n—— 请输入姓名： \c\033[0m" 
read NAME
fi 

echo -e "\n———————————————————查询结果————————————————————\n"

grep "\<$NAME\>" ./xinxi  2> /dev/null 
 
if [ $? != 0 ]; then 
echo -e "\033[31m\n\n\n\n\n—— 查无此人——\033[0m"
fi

echo -e "\n———————————————————————————————————————————————\n\n"

} 


#显示所有记录 
display() 
{ 
clear 

if [ ! -f ./xinxi ]; then 
echo -e "\033[31m\n—— 显示失败！原信息为空，无信息可显示！——\033[0m " 
sleep 2 
clear 
return 
fi 

echo -e "\n———————————————————学生信息————————————————————\n"
cat ./xinxi 
echo -e "\n———————————————————————————————————————————————\n\n"
} 
 
#利用vim编辑器编译 
edit() 
{ 
clear
vim ./xinxi 
} 
  
#退出程序 
quit() 
{ 
 clear 
 exit 
} 
 
clear 

while : 
do 
 
 echo "————————————菜单选项———————————"
 echo "|      1. 增加学生信息         |"
 echo "|      2. 删除学生信息         |"
 echo "|      3. 查询学生信息         |"
 echo "|      4. 显示全部信息         |"
 echo "|      5. 批量修改信息         |"
 echo "|      0: 退出系统             |"
 echo "———————————————————————————————"
 echo -e -n  "\033[34m—— 请选择选项:  \c \033[0m"
 read choice 
 
 case $choice in 
  1 ) add; clear
   ;; 
  2 ) delete; clear
   ;; 
  3 ) search
   ;; 
  4 ) display 
   ;; 
  5 ) edit; clear 
   ;; 
  0 ) quit 
   ;; 
  * ) echo "\033[31m—— 输入选择错误，请重新输入! ——\033[0m" 
   sleep 2 
   clear 
   ;; 
 esac 

done 



